/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package modeles.beans;

import java.io.Serializable;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import modeles.CategorieProduit;
import modeles.servicesClient.ServicesCategories;
import org.primefaces.event.RowEditEvent;

/**
 *
 * @author Fred
 */
@ManagedBean(name = "listeCategories")
@ViewScoped
public class ListeCategoriesBean implements Serializable {

    private ServicesCategories services;
    private List<CategorieProduit> categories;
    private List<CategorieProduit> categoriesTriees;

    /**
     * Creates a new instance of ListeCategoriesBean
     */
    public ListeCategoriesBean() {
        this.services = new ServicesCategories();
    }

    public List<CategorieProduit> getCategories() {
        if (categories == null) {
            categories = services.getCategories();
        }
        return categories;
    }

    public List<CategorieProduit> getCategoriesTriees() {
        return categoriesTriees;
    }

    public void setCategoriesTriees(List<CategorieProduit> categoriesTriees) {
        this.categoriesTriees = categoriesTriees;
    }

    public void supprimerCategorie(int id) {
        categories = null;
        Integer i = services.remove(Integer.toString(id));
        if (i != null && i == 512) {
            ajouterMessage("Cette catégorie ne peut être supprimée pour des raisons d'intégrité de la base de données", FacesMessage.SEVERITY_ERROR);
        }
    }

    public void modifierCategorie(RowEditEvent event) {
        CategorieProduit cat = (CategorieProduit) event.getObject();
        services.modifierCategorie(cat, Integer.toString(cat.getId()));
    }

    private void ajouterMessage(String msg, FacesMessage.Severity severity) {
        FacesMessage message = new FacesMessage(msg);
        if (severity != null) {
            message.setSeverity(severity);
        }
        FacesContext.getCurrentInstance().addMessage(null, message);
    }
}
